Spatial prediction methods, that is, spatial interpolation have been employed in many applications. In particular, spatial interpolation forms an essential part of many image and video coding and processing applications. In hybrid image or video coding algorithms, spatial prediction is typically employed for determining a prediction for an image block based on the pixels of already coded/decoded blocks. On the other hand, spatial interpolation may also be used as a part of post processing the decoded image or video signal, in particular for error concealment.
The majority of standardized video coding algorithms are based on hybrid video coding. Hybrid video coding methods typically combine several different lossless and lossy compression schemes in order to achieve the desired compression gain. Hybrid video coding is also the basis for ITU-T standards (H.26x standards such as H.261 and H.263) as well as ISO/IEC standards (MPEG-X standards such as MPEG-1, MPEG-2, and MPEG-4). The most recent and advanced video coding standard is currently the standard denoted as H.264/MPEG-4 advanced video coding (AVC) which is a result of standardization efforts by joint video team (JVT), a joint team of ITU-T and ISO/IEC MPEG groups.
An image signal (input signal or input video signal) input to an encoder (image coding apparatus) is a sequence of images called frames (video frames), each frame being a two-dimensional matrix of pixels. All the above-mentioned standards based on hybrid video coding include subdividing each individual frame into smaller blocks consisting of a plurality of pixels. Typically, a macroblock (usually denoting a block of 16×16 pixels) is the basic image element, for which the coding is performed. However, various particular coding steps may be performed for smaller image elements, denoted subblocks or simply blocks and having the size of, for instance, 8×8, 4×4, and 16×8.
In the intra coding in accordance with H.264/MPEG-4 AVC, spatial prediction is performed on subblocks or macroblocks of the sizes of 8×8, 4×4, 16×16 in order to reduce spatial redundancy. Spatial prediction is also referred to as spatial interpolation, intra prediction, or intra frame prediction. Spatial prediction using a spatial direction is referred to as directional spatial prediction. Furthermore, coding using such spatial prediction is referred to as intra coding or spatial coding, and an image or a block that is intra-coded is an intra-coded image or an intra-coded block. Intra-frame prediction uses a predefined set of intra-prediction modes (spatial prediction modes including the directional prediction mode), which basically predict the current (prediction target) block using the boundary pixels of the neighboring blocks already coded.
FIG. 1 schematically illustrates the eight directional spatial prediction modes used for the subblocks of 4×4 pixels. The different types (modes) of directional spatial prediction refer to different edge directions, i.e. the direction of the applied two-dimensional extrapolation as illustrated in FIG. 1. There are eight different directional prediction modes and one DC prediction mode for subblocks of the sizes 4×4 and 8×8, and three different directional prediction modes and one DC prediction mode for the macroblocks of 16×16 pixels.
Eight of the directional spatial prediction modes are labeled by a value 302 of range {0, 1, 3, 4, 5, 6, 7, 8} and associated with predictions in eight different directions 301. The remaining one prediction mode (spatial prediction mode) is labeled by a value of 2 and called “DC prediction mode”. In the DC prediction mode, all pixels in a block are predicted by a single value, which is the mean value of the surrounding reference pixels. In the eight directional spatial prediction modes, the current block is predicted so that the reference pixels are repeated along the corresponding directions 301. For instance, the vertical mode that is a directional spatial prediction mode labeled with “0” vertically repeats the reference pixels of the row immediately above the current block. The horizontal mode that is a directional spatial prediction mode labeled with “1” horizontally repeats the reference pixels of the column immediately to the left of the current block. The remaining directional spatial prediction modes labeled with values from 3 to 8 are diagonal intra prediction modes, according to which the reference pixels are diagonally repeated in the respective diagonal directions.
In video coding, intra-coded blocks serve for refreshing the video sequence and stopping the error propagation. However, the efficiency of the spatial coding is lower than the performance of the temporal coding (inter coding), which leads to a lower overall compression gain as well as to high variations of the resulting bit rate.
In order to increase the coding efficiency, an improved spatial prediction in which the number of extrapolation directions for predicting pixels of a block is not limited to eight is suggested (see PTL 1). Rather, edge detection is performed within the already decoded neighboring blocks in PTL 1. Based on detection of the edge determined as dominant, the pixels of the block are extrapolated or interpolated possibly from a sub-pel position between pixels belonging to a neighboring block.
PTL 1 enables a more precise determination of a prediction direction. This leads to a more precise spatial prediction, which, on the other hand, results in smaller prediction error signal (difference between the current block and a predicted block) and thus, to a better compression.